$(function() {
	// 点击生成日历
	$("#createCalendar").click(function() {
		cleanHtml();
		var year = $("#year").val();
		var month = $("#month").val();
		var getFirstday = getfirstday(year, month);
		var dayNumber = getdaysinonemonth(year, month);
		
		createTrDom(dayNumber, getFirstday);
	});

	// 默认日历
	function setDefaultDate() {
		// 当前月份
		var month = new Date().getMonth() + 1;
		// 当前年份
	    var year = new Date().getFullYear();
	    // 获取某年某月的第一天是星期几
	    var getFirstday = getfirstday(year, month);
	    // 获取某年某月有多少天
		var dayNumber = getdaysinonemonth(year, month);

	    $("#year").val(year);
	    $("#month").val(month);

	    // 生成日历
	    createTrDom(dayNumber, getFirstday);
	}

	// 进入页面时渲染日历
	setDefaultDate();
	

    // 算某年某月的第一天是星期几
    function getfirstday(year,month){              
	    month = month - 1;
	    var d = new Date(year, month, 1);
    	return d.getDay();
    }

    // 算某年某月有多少天
    function getdaysinonemonth(year,month){
    	month = parseInt(month,10);
    	var d = new Date(year,month,0);
    	return d.getDate();
    }

    // 生成Dom 结构
	function createTrDom(days, weekday) {
		// 初始每个月的1号
		var dayNumber = 1;

		// 当某年某月的第一天是星期天时
		if (weekday == 0) {
			weekday = 7;
			sundayJ = 6;
			// 当某年某月的第一天是星期六时
		} else if (weekday == 6) {
			weekday = 6;
			sundayJ = 6;
		} else {
			sundayJ = 5;
		}

		for (var i = 0; i < sundayJ; i++) {
			for (var j = 0; j < 7; j++) {
				// 如果是第一行且小于当前月第一天对应的星期数，因为weekday是从1开始的，所以需要-1
				if (i == 0 && j < weekday - 1) {
					$(".table-body tr").eq(1).find("td").eq(j).html("");
				} else {
					if (dayNumber <= days) {
						// 如果dayNumber小于当前月总天数
						$(".table-body tr").eq(i + 1).find("td").eq(j).html(dayNumber);
						dayNumber++;
					} else {
						// 如果dayNumber 大于当前月总天数
						$(".table-body tr").eq(i + 1).find("td").eq(j).html("");
					}
				}
			}
			
		}
	}

	// 每次重新渲染时 清除上一个Dom
	function cleanHtml() {
		for (var i = 1; i < 7; i++) {
			for (var j = 0; j < 7; j++) {
				$(".table-body tr").eq(i).find("td").eq(j).html("");
			}
		}
	}
});